﻿using System.Collections.Generic;
using System.ServiceModel;
using Yunzuan.Common.Interface;

namespace WholesalerService
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码和配置文件中的接口名“IUser”。
    [ServiceContract]  //说明接口是一个WCF的接口
    public interface IWholesaler
    {
        //[OperationContract(Action = "UploadFile", IsOneWay = true)]
        //void UploadFile(FileUploadMessage request);//文件上传

        [OperationContract]
        string DownTemplate(string param);//下载上传模板

        [OperationContract]
        string DownEntryTemplate(string param);//下载录单模板

        [OperationContract]
        string ExportAllOrder(string exportAllParam);//所有订单下载(仅供管理员)

        [OperationContract]
        string DownloadOrder(string downloadOrderParam);//文件下载(团队销售订单)

        [OperationContract]
        string DownloadAllOrder(string downloadAllOrderParam);//文件下载(团队管理员)

        [OperationContract]
        string ExportOrders(string exportOrdersParam);//文件下载(客户订单)

        [OperationContract]  //说明是一个WCF接口的方法
        string DeliveryOrders(string deliveryOrdersParam); //文件下载（团队待到货订单）

        [OperationContract]
        string GetDeliverys(string getDeliverysParam);//查看取货单

        [OperationContract]
        string GetArrivals(string getArrivalsParam);//到货日期查询 9-28

        [OperationContract]
        UpFileResult UploadFile(FileUploadMessage request);//文件上传
        [OperationContract]
        UpFileResult UploadInlayFile(FileUploadMessage request); //成品货表上传
        [OperationContract]
        UpFileResult UploadGemsFile(FileUploadMessage request); //成品货表上传
        [OperationContract]
        UpFileResult UploadImage(ImageUploadMessage imageParam);//上传图片（成品 统包） 

        [OperationContract]
        string ContactSupplier(string contactParam);//供应商联系方式 11-5

        [OperationContract]  //说明是一个WCF接口的方法
        string ReviseAnOrder(string reviseAnOrderParam); //单个订单改价(单个操作 卖出退点 卖出RMB)

        [OperationContract]  //说明是一个WCF接口的方法
        string ReviseOrders(string reviseOrdersParam); //批量订单改价(单个或多个操作 卖出退点+1 或卖出RMB*95折)

        [OperationContract]  //说明是一个WCF接口的方法
        string RemarkOrder(string remarkOrderParam); //备注订单

        [OperationContract]  //说明是一个WCF接口的方法
        string ArrivalOrders(string arrivalOrdersParam); //入库订单（处理（2采购成功，待入库）的订单到 (3入库成功，待出库)）

        [OperationContract]
        string CancelArrivalOrders(string cancelArrivalOrdersParam);//取消到货

        [OperationContract]  //说明是一个WCF接口的方法
        string PurchaseOrder(string purchaseOrderParam); //采购订单（处理（1下单成功，待采购）的订单到 (2采购成功，待入库)）

        [OperationContract]  //说明是一个WCF接口的方法
        string CancelOrders(string cancelOrdersParam); //作废订单（1下单成功，采购中）
        [OperationContract]  //说明是一个WCF接口的方法
        string UpdateStatus(string cancelOrdersParam); //更新订单货品状态（裸钻）

        [OperationContract]
        string StockOrders(string stockOrdersParam);//自留订单

        [OperationContract]
        string ReturnOrders(string returnOrdersParam);//退回订单

        [OperationContract]
        string ExchangeOrders(string exchangeOrdersParam);//修改采购汇率 9-6

        [OperationContract]
        string ModFreight(string freightParam);//修改订单运费 11-11

        [OperationContract]  //说明是一个WCF接口的方法
        string ModifyPurchaseUserID(string modifyPurchaseUserIDParam); //转移订单

        [OperationContract]  //说明是一个WCF接口的方法
        string GetOrders(string getOrdersParam); //订单列表

        [OperationContract]  //说明是一个WCF接口的方法
        string SettleOrders(string settleOrdersParam); //订单结算 11-2 数据库字段排序

        [OperationContract]  //说明是一个WCF接口的方法
        string GetUsers(string getUsersParam); //团队列表

        [OperationContract]
        string GetSales(string getSalesParam);//业务列表

        [OperationContract]
        string GetSaleList(string getSaleListParam);//所有业务 9-6

        [OperationContract]
        string GetRapnetList(string param);//报价列表

        [OperationContract]
        string GetPurchases(string getPurchasesParam);//采购列表

        [OperationContract]
        string GetPurchaseList(string getPurchaseListParam);//所有采购

        [OperationContract]
        string GetPurchasers(string getPurchasersParam);//所有纯采购 9-26

        [OperationContract]  //说明是一个WCF接口的方法
        string GetCustomers(string getCustomersParam); //客户列表
        /// <summary>
        ///  统计客户状态数量
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string StatisticsCustomer(string strParam);

        [OperationContract]
        string GetDistributors(string getDistributorsParam);//所有分销商列表

        [OperationContract]
        string GetNotices(string getNoticesParam);//所有公告列表

        [OperationContract]
        string GetNoticeList(string getNoticeListParam);//发布中公告列表 11-16

        [OperationContract]
        string GetGlobals(string getGlobalsParam);//所有全局配置列表 11-10  IList

        [OperationContract]
        string GetSettingInfo(string settingInfoParam);//单个全局

        [OperationContract]
        string EditGlobal(string editGlobalParam);//修改全局 11-10

        [OperationContract]
        string GetCustomerList(string getCustomerListParam);//所有客户 9-6

        [OperationContract]  //说明是一个WCF接口的方法
        string GetSuppliers(string getSuppliersParam); //供应商列表

        [OperationContract]
        string GetSupplierList(string getSupplierListParam); //所有供应商 9-6

        [OperationContract]  //说明是一个WCF接口的方法
        string GetCharges(string getChargesParam); //充值记录

        [OperationContract]
        string ExportCharges(string exportChargesParam); //导出充值记录 12-3

        [OperationContract]
        string GetExportUrl(string exportParam);//导出裸钻

        //收支（流水Flow）start  12-3

        [OperationContract]
        string GetFlows(string getFlowsParam); //收支明细（流水）

        [OperationContract]
        string GetFlow(string getFlowParam);//收支详情

        [OperationContract]
        string AddFlow(string addFlowParam);//添加流水
        [OperationContract]
        string AddFlowByPassStatus(string addFlowParam);//申请审核直接通过

        [OperationContract]
        string FlowNumber(string flowNumberParam);//流水状态个数统计

        [OperationContract]
        string EditFlow(string editFlowParam);//修改流水

        [OperationContract]
        string ExportFlows(string expFlowsParam);//导出银行流水

        [OperationContract]
        string GetOrderIDsDetail(string orderIDsParam);//订单详情

        //---核心start----

        [OperationContract]
        string ModifyFlow(string modifyFlowParam);//审核流水 -重中之重

        [OperationContract]
        string ModifyExchange(string modifyExchangeParam);//换美金/采购汇率/兑换记录 01-04

        [OperationContract]
        string BankTransfer(string bankTransferParam);//转账到

        [OperationContract]
        string DirectCharge(string directChargeParam);//直接充值 01-05

        //---核心end---

        //收支（流水Flow）end

        [OperationContract]
        string OnShelves(string param);//上架

        [OperationContract]
        string OffShelves(string param);//下架

        //银行账户start
        [OperationContract]
        string GetBanks(string getBanksParam);//银行账户列表

        [OperationContract]
        string GetBankList(string getBankListParam);//银行账户列表Ilist

        [OperationContract]
        string GetBank(string getBankParam);//银行账户

        [OperationContract]
        string AddBank(string addBankParam);//添加账户

        [OperationContract]
        string EditBank(string editBankParam);//账户对账
        //银行账户end

        [OperationContract]
        string GetPays(string getPaysParam);//消费记录

        [OperationContract]
        string ModifySalesUserID(string modifySalesUserIDParam);//移交客户

        [OperationContract]
        string GetShipOrders(string getShipOrdersParam);//出货单订单列表

        [OperationContract]
        string PrintShipOrders(string printShipOrdersParam);//打印出货单 9-20

        [OperationContract]  //说明是一个WCF接口的方法
        string SubmitOrder(string submmitOrderParam); //提交订单

        [OperationContract]  //说明是一个WCF接口的方法
        string EntryOrder(string entryOrderParam);//订单录入（单条）

        [OperationContract]
        string EntryCheck(string entryCheckParam);//录入检查 9-27

        [OperationContract]  //说明是一个WCF接口的方法
        string AddToCart(string addToCartParam); //添加购物车(单个)

        [OperationContract]
        string MultiAddToCart(string multiAddToCartParam);//添加购物车(多个)

        [OperationContract]
        string RemoveFromCart(string removeFromCartParam);//移出购物车

        [OperationContract]  //说明是一个WCF接口的方法
        string GetCartInfos(string cartInfoParam);//获取购物车详情列表

        [OperationContract]  //说明是一个WCF接口的方法
        string GetCarts(string cartsParam);//获取购物车列表

        [OperationContract]  //说明是一个WCF接口的方法
        string GetInventoryInfos(string inventoryInfoParam, string key = "");//获取在线库存（多个） //PageList<InventoryInfoResult>     

        [OperationContract]  //说明是一个WCF接口的方法
        string GetInventoryInfo(string inventoryInfoParam, string key = "");//获取在线库存（单个） //InventoryInfo

        [OperationContract]
        string GetSupplierInfo(string supplierInfoParam);//单个供应商

        [OperationContract]
        string UploadFileState(string uploadFileStateParam);//上传模式

        [OperationContract]  //说明是一个WCF接口的方法
        string AddCustomer(string addCustomerParam);//新增客户（公司客户）

        [OperationContract]
        string AddNotice(string addNoticeParam);//发布公告

        [OperationContract]  //说明是一个WCF接口的方法
        string AddCharge(string addChargeParam);//新增记账明细

        [OperationContract]  //说明是一个WCF接口的方法
        string EditCustomer(string editCustomerParam);//编辑客户（公司客户）

        [OperationContract]
        string EditNotice(string editNoticeParam);//编辑公告

        [OperationContract]
        string ActiveCustomer(string activeCustomerParam);//审核客户
                                                          /// <summary>
                                                          /// 编辑客户优惠
                                                          /// </summary>
                                                          /// <param name="strParam"></param>
                                                          /// <returns></returns>
        [OperationContract]
        string UpdateCustomerDiscounts(string strParam);

        [OperationContract]  //说明是一个WCF接口的方法
        string EditCharge(string editChargeParam);//确认充值

        [OperationContract]
        string EditShipNo(string editShipNoParam);//支付出货单

        [OperationContract]
        string PayOrders(string payOrdersParam);//收款

        [OperationContract]
        string PayBackOrders(string payOrdersParam);//收款

        [OperationContract]
        string ReceiptOrders(string payOrdersParam);//付款

        [OperationContract]
        string PayUSDOrders(string payUSDOrdersParam);//USD支付订单

        [OperationContract]
        string DelOrders(string delOrdersParam);//删除订单 9-29
        [OperationContract]
        string DelOrdersByOwner(string delOrdersParam);//删除现货订单 （备用表，非订单表）

        [OperationContract]  //说明是一个WCF接口的方法
        string EditSupplier(string editSupplierParam);//编辑供应商

        [OperationContract]  //说明是一个WCF接口的方法
        string AddUser(string addUserParam);//新增团队（公司团队）

        [OperationContract]  //说明是一个WCF接口的方法
        string AddSupplier(string addSupplierParam);//新增供应商

        [OperationContract]  //说明是一个WCF接口的方法
        string EditUser(string editUserParam);//编辑团队（公司团队）

        [OperationContract]  //说明是一个WCF接口的方法
        string CustomerRegister(string customerRegisterParam);//客户注册（公司客户）

        [OperationContract]  //说明是一个WCF接口的方法
        string CustomerRegIsExist(string customerRegIsExistParam, string key = "");//客户注册或新增是否存在（公司客户）

        [OperationContract]
        string SupplierRegIsExist(string supplierRegIsExistParam);//供应商简称是否已存在

        [OperationContract]  //说明是一个WCF接口的方法
        string UserRegIsExist(string userRegIsExistParam);//团队新增是否存在（公司员工）

        [OperationContract]  //说明是一个WCF接口的方法
        string CustomerLogin(string customerLoginParam);//客户登录（公司客户）

        [OperationContract]  //说明是一个WCF接口的方法
        string UserLogin(string userLoginParam);//团队登录（公司员工）

        [OperationContract]  //说明是一个WCF接口的方法
        string CustomerForgotPassword(string customerForgotPasswordParam);//客户重置密码（公司客户）

        [OperationContract]  //说明是一个WCF接口的方法
        string CustomerModifyPassword(string customerModifyPasswordParam);//客户修改密码（公司客户）

        [OperationContract]
        string TeamModifyPassword(string teamModifyPasswordParam);//团队修改密码（公司团队） 9-21

        [OperationContract]  //说明是一个WCF接口的方法
        string GetCustomerInfo(string customerInfoParam);//获取客户资料（公司客户)

        [OperationContract]
        string GetNoticeInfo(string noticeInfoParam);//公告

        [OperationContract]
        string ViewNoticeInfo(string noticeInfoParam);//浏览公告

        [OperationContract]
        string GetOrderInfo(string orderInfoParam);//获取订单信息

        [OperationContract]  //说明是一个WCF接口的方法
        string GetChargeInfo(string chargeInfoParam);//获取记账明细（公司团队)

        [OperationContract]  //说明是一个WCF接口的方法
        string GetUserInfo(string userInfoParam);//获取员工资料（公司员工)

        [OperationContract]  //说明是一个WCF接口的方法
        string GetSysSettingInfo(string param);//获取所有配置

        //[OperationContract]
        //string GetRate(string param);//获取售出汇率

        [OperationContract]
        string GetRate(string getRateParam);//获取售出汇率 11-10

        [OperationContract]
        string GetExchangeRate(string param);//获取采购汇率 9-6

        [OperationContract]  //说明是一个WCF接口的方法
        string EditSysSettingInfo(string editSysSettingInfoParam);//修改配置

        [OperationContract]
        string AddShip(string addShipParam);//制作出货单

        [OperationContract]
        string EditShip(string editShipParam);//出货

        [OperationContract]
        string Shipment(string shipParam);//确认出货

        [OperationContract]
        string UpdateLog(string param);//更新日志 9-29

        [OperationContract]
        string UpdateRapXml(string param);//更本地新报价表XML 10-8

        [OperationContract]
        string OrderReport(string reportParam);//报表

        /// <summary>
        /// 裸钻管理（新增 修改 删除 批量调价）
        /// </summary>
        /// <param name="modifyDiaParam"></param>
        /// <returns></returns>

        [OperationContract]
        string ModifyDia(string modifyDiaParam);//修改裸钻

        [OperationContract]
        string AddDia(string addDiaParam);//添加裸钻

        [OperationContract]
        string DelDia(string delDiaParam);//删除裸钻

        [OperationContract]
        string BatchDia(string batchDiaParam);//批量调整裸钻价格

        [OperationContract]
        string BatchUpdateDia(string batchUpdateDiaParam);//批量调整裸钻参数




        /// <summary>
        /// 用户活跃度AU
        /// </summary>
        /// <returns></returns>

        [OperationContract]
        string GetActiveTime(string activeTimeParam);//活跃时间

        [OperationContract]
        string GetActiveArea(string activeAreaParam);//活跃地区

        /// <summary>
        /// 兑换记录 01-03
        /// </summary>
        /// <param name="getExchangesParam"></param>
        /// <returns></returns>

        [OperationContract]
        string GetExchanges(string getExchangesParam);

        //[OperationContract]
        //string GetExchangeList(string getExchangeListParam);

        [OperationContract]
        string ComputePurchaseExchange(string computePurchaseExchangeParam);//计算采购汇率

        /// <summary>
        /// 统计方法
        /// </summary>
        [OperationContract]
        string OrderNumber(string orderNumberParam);//订单个数统计

        [OperationContract]
        string SettleOrderNumber(string settleOrderNumberParam);//结算订单个数统计 11-2

        [OperationContract]
        string OrderPaymentStatusNumber(string orderPaymentStatusNumberParam);//订单支付状态统计

        [OperationContract]
        string SettleOrderPaymentStatusNumber(string settleOrderPaymentStatusNumberParam);//结算订单支付状态统计  11-2

        [OperationContract]
        string OrderMonth(string orderMonthParam);//每月订单个数统计 9-22

        [OperationContract]
        string CustomerNumber(string customerNumberParam);//客户个数统计

        [OperationContract]
        string ChargeNumber(string chargeNumberParam);//充值个数统计

        [OperationContract]
        string CartNumber(string cartNumberParam);//购物车个数  



        /// <summary>
        /// 过滤中心供应商
        /// </summary>
        /// <returns></returns>

        [OperationContract]
        string GetCenterSuppliers(string param);//远程供应商列表 12-27

        [OperationContract]
        string GetCenterSupplier(string getCenterSupplierParam);//单个远程供应商 12-27

        [OperationContract]
        string GetSuppliersSet(string param); //得到多个设置

        [OperationContract]
        string SetSupplier(string param); //单个设置黑名单

        [OperationContract]
        string SetSupplierWhite(string param); //单个设置白名单

        [OperationContract]
        string GetSupplierSet(string param);//得到单个设置

        [OperationContract]
        string SetSuppliers(string param); //批量设置



        [OperationContract]
        int DelSupplier(string setSupplierParam);
        /// <summary>
        /// 裸钻库存批量修改（需要签名）
        /// </summary>
        /// <param name="udateInventoryParam"></param>
        /// <returns></returns>
        [OperationContract]
        string BatchUpStockData(string batchDiaParam);

        [OperationContract]
        string GetInventoryInfosCount(string inventoryInfoParam);

        [OperationContract]
        string GetLink(string param);
        [OperationContract]
        string UpdateLink(string param);
        [OperationContract]
        string GetRapnetByParam(string param);

        /// <summary>
        /// 批量删除购物车
        /// </summary>
        /// <param name="submmitOrderParam"></param>
        /// <returns></returns>
        [OperationContract]
        string DeleteAllCart(string cartParam);


        /// <summary>
        /// 查询出货单
        /// </summary>
        /// <param name="CancelGemOrdersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetAllShipNo(string shipOrdersParam);
        /// <summary>
        /// 查询订单通过出货单号
        /// </summary>
        /// <param name="CancelGemOrdersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetAllOrderByShipNo(string shipOrdersParam);
        /// 删除出货单里面的订单
        [OperationContract]
        string DeleteOrderInShipNoByOrderIdsOrShipNo(string shipOrdersParam);
        /// <summary>
        /// 权限相关
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        string GetJobTitleInfo(string param);
        [OperationContract]
        string GetMenuList(string menuParam);

        /// <summary>
        ///  修改 职能
        /// </summary>
        /// <param name="batchUpdateDiaParam"></param>
        /// <returns></returns>
        [OperationContract]
        string UpdateJobTitle(string updateParam);
        /// <summary>
        ///  新增 职能
        /// </summary>
        /// <param name="batchUpdateDiaParam"></param>
        /// <returns></returns>
        [OperationContract]
        string AddJobTitle(string addParam);

        //币种设置 0 all  ,1 rmb ,2 usd
        [OperationContract]
        string EditGlobalCurrency(string editGlobalParam);
        [OperationContract]
        UpFileResult UploadParcelsFile(FileUploadMessage request);
        [OperationContract]
        UpFileResult UploadEmeraldsFile(FileUploadMessage request);
        [OperationContract]
        UpFileResult UploadPrimeGoldsFile(FileUploadMessage request);
        [OperationContract]
        UpFileResult UploadInlaySettingsFile(FileUploadMessage request);
        #region 收货地址
        [OperationContract]
        string DeleteReceivingAddress(string param);
        [OperationContract]
        string EditReceivingAddress(string param);
        [OperationContract]
        string GetReceivingAddress(string param);
        [OperationContract]
        string AddReceivingAddress(string param);
        #endregion 收货地址end 
        [OperationContract]
        string UpdateArrivalTime(string param);
        [OperationContract]
        string UpdateReciptStatus(string param);
        [OperationContract]
        string GetPurchaseAgents(string param);
        [OperationContract]
        string updateOrder(string param);
        [OperationContract]
        string OnStocksBatch(string param);
        [OperationContract]
        string OffStocksBatch(string param);
        [OperationContract]
        string UpdatePlace(string param);
        [OperationContract]
        string UpdatePurchaseSupplier(string param);
        [OperationContract]
        string PayAndRechargeOrders(string param);
        [OperationContract]
        string getUserLogByUserId(string param);
        [OperationContract]
        string updatePriceUSD(string param);
        [OperationContract]
        string updateBuyUSDPrice(string param);
        [OperationContract]
        string ReVerify(string param);
        [OperationContract]
        string updatePurchaseExchangerate(string param);
        [OperationContract]
        string GetCustomerRights(string param);
        [OperationContract]
        string SubmitCustomerRights(string param);
        [OperationContract]
        string UpdateStockingPrice(string param);
        [OperationContract]
        string UpdatesStockingPurchaseExchange(string param);
        [OperationContract]
        string GetPrintShipOrders(string printShipOrdersParam);



        [OperationContract]
        string BatchUpdateSupplierRoleIDBySupplierIDs(string param);
        [OperationContract]
        string BatchUpdateCustomerRoleNameByCustomerIDs(string param);
        /// <summary>
        /// 查询角色列表
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        [OperationContract]
        string QuerySupplierRole(string param);
        /// <summary>
        /// 编辑供应商角色
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        [OperationContract]
        string EditSupplierRole(string param);
        /// <summary>
        /// 删除供应商角色
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        [OperationContract]
        string DelSupplierRole(string param);
        /// <summary>
        /// 添加供应商角色
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        [OperationContract]
        string AddSupplierRole(string param);

        [OperationContract]
        string GetRemoteKeyInfo(Dictionary<string, string> dict);
        [OperationContract]
        string GetOrderShipNoCount(string param);
        [OperationContract]
        string GetCustomerDiscountsByCustomerId(string param);
        [OperationContract]
        string GetCustomerIDAndDiscountsAndRightsByOpenId(string openid, string tttagKey);
        [OperationContract]
        string BindOnAccount(string param, string openId);
        [OperationContract]
        string AddWXCustomer(string param, string domainKey);
        [OperationContract]
        string GetCustomerInfoAndRights(string customerInfoParam);


        [OperationContract]
        string AddAssessments(string customerInfoParam);
        [OperationContract]
        string DeleteAssessments(string customerInfoParam);
        [OperationContract]
        string EditAssessments(string customerInfoParam);
        [OperationContract]
        string GetAssessments(string customerInfoParam);
        [OperationContract]
        string DownloadAssessments(string customerInfoParam);
        [OperationContract]
        string GetStocksReports(string assessmentsParam);
        [OperationContract]
        string GetStockRequirement(string strParam);
        [OperationContract]
        string GetStockPricesAdjuster(string strParam);
        [OperationContract]
        string GetContactsAvailable(string strParam);
        [OperationContract]
        string GetValuationErp(string strParam);
        [OperationContract]
        string GetValuationGold(string strParam);
        [OperationContract]
        string GetValuationSecondary(string strParam);
        [OperationContract]
        string GetSupplierRoleList(string param);
        [OperationContract]
        string UpdateSupplierRole(string param);
        [OperationContract]
        string GetSupplierIsStockList(string param);
        [OperationContract]
        string UpdateSupplierIsStock(string param);
        [OperationContract]
        string CustomerModifyCustomerKey(string customerModifyCustomerKeyParam);

        #region 借货单
        /// <summary>
        /// 添加借货单(单个或多个)  --含事务
        /// </summary>
        /// <param name="multiAddToCartParam"></param>
        /// <returns></returns>
        [OperationContract]
        string AddLendOrder(string strParam);
        /// <summary>
        /// 借货单列表
        /// </summary>
        /// <param name="cartsParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetLendOrderListOfDiamond(string cartsParam);
        /// <summary>
        /// 移除借货单
        /// </summary>
        /// <param name="ringCartId"></param>
        /// <returns></returns>
        [OperationContract]
        string RemoveLendOrderOfDiamond(string removeFromCartParam);
        /// <summary>
        /// 提交借货单
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string SubmitLendOrders(string strParam);
        /// <summary>
        /// 借货单列表明细
        /// </summary>
        /// <param name="cartsParam"></param>
        /// <returns></returns>
        [OperationContract]
        string SearchLendOrderByLendOrderNO(string cartsParam);
        /// <summary>
        /// 更新借货单
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string UpdateLendOrderByNo(string strParam);
        /// <summary>
        /// 查看
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetLendOrderByNo(string strParam);
        /// <summary>
        /// 提交借货单（统包成品）
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string SubmitProductLendoder(string strParam);
        #endregion

        #region 上传裸钻图片地址
        [OperationContract]
        string UploadDiamondImg(string strParam);

        /// <summary>
        /// 获取裸钻图片
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetImgInfo(string strParam);
        /// <summary>
        /// 上传之前需要获取到 STS token
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetSTSToken(string strParam);
        #endregion

        #region &&&&&&&&&&&&&&&&&&&&&上传rapnet&&&&&&&&&&&&&&&&&&&&&
        [OperationContract]
        string GetDataCenterDataAndUploadRapnet(string exportParam);
        [OperationContract]
        string GetRapnetInfo(string param);
        [OperationContract]
        string EditRapnetInfo(string param);
        [OperationContract]
        string AddRapnetInfo(string param);
        #endregion  &&&&&&&&&&&&&&&&&&&&&上传rapnet&&&&&&&&&&&&&&&&&&&&&

        #region  &&&&&&&&&&&&&&&&&&&&&销售报告t&&&&&&&&&&&&&&&&&&&&& 一共 5 个子模块：访问，订单，利润，延期，资产
        //访问    /api/report/visit
        [OperationContract]
        string ReportAboutVisit(string param);
        //订单   /api/report/order
        [OperationContract]
        string ReportAboutOrder(string param);
        //利润    /api/report/profit
        [OperationContract]
        string ReportAboutProfit(string param);
        //延期    /api/report/delay
        [OperationContract]
        string ReportAboutDelay(string param);
        //资产    /api/report/assets
        [OperationContract]
        string ReportAboutAssets(string param);
        [OperationContract]
        string PreBatchExecuteSql(string sql);
        [OperationContract]
        string GetDpiPointer(string strParam);
        #endregion &&&&&&&&&&&&&&&&&&&&&销售报告&&&&&&&&&&&&&&&&&&&&&


        #region 
        /// <summary>
        /// 88gia 提交订单接口 暂时只供88gia 使用
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string CreateOrder(string strParam); 
        /// <summary>
        /// 查宝网下单88GIA专用（除裸钻外）
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string CreateOrderNew(string strParam); 
        #endregion

        #region  日志
        [OperationContract]
        string GetUserLoginLog(string strParam);
        [OperationContract]
        string SearchOperationLog(string strParam);
        /// <summary>
        /// 统计查询货品日志记录
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetSearchLog(string strParam);
        [OperationContract]
        string GetSearchLogCount(string strParam);
        /// <summary>
        /// 统计明细
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string SearchDetailByWeight(string strParam);
        [OperationContract]
        string SearchDetail(string strParam);
        #endregion




        #region
        /// <summary>
        /// 新增商品
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string AddProductData(string strParam);
        /// <summary>
        /// 删除商品
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string DelProductData(string strParam);
        /// <summary>
        /// 现货修改
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ModifyProductData(string strParam);
        /// <summary>
        /// 删除订单的后门，自己人用传参数key,IDs
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string DelOrderFromDataCenter(string strParam);
        #endregion
        #region  修改订单相关方法
        /// <summary>
        /// 查货
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetProductData(string strParam,string key="");
        /// <summary>
        /// 查货数量
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetProductDataCount(string strParam);
        /// <summary>
        /// 提交订单
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string SubmitOrderNew(string strParam);
        /// <summary>
        /// 查询订单列表
        /// </summary>
        /// <param name="ordersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetOrderNewList(string ordersParam);
        /// <summary>
        /// 查询订单信息
        /// </summary>
        /// <param name="ordersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetOrderNew(string ordersParam);
        /// <summary>
        /// 采购订单
        /// </summary>
        /// <param name="ordersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string PurchaseOrderNew(string ordersParam);

        /// <summary>
        /// 更新订单（现货订单调用）
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string UpdateOrderNew(string strParam);
        /// <summary>
        /// 选采购
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ModifyPurchaseUser(string strParam);
        /// <summary>
        /// 确认到货
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string SubmitArrivalOrdersNew(string strParam);
        /// <summary>
        /// 取消到货
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string CancelArrivalOrdersNew(string strParam);

        /// <summary>
        /// 修改运费
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ModifyFreightOrdersNew(string strParam);
        /// <summary>
        /// 作废订单
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string CancelOrdersNew(string strParam);
        /// <summary>
        /// 出货
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ShipOrdersNew(string strParam);
        /// <summary>
        /// 删除订单
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string DelOrdersNew(string strParam);
        /// <summary>
        /// 修改备注
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ModifyRemarksOrdersNew(string strParam);
        /// <summary>
        /// 制作出货单
        /// </summary>
        /// <param name="addShipParam"></param>
        /// <returns></returns>
        [OperationContract]
        string AddShipOrderNew(string strParam);
        /// <summary>
        /// 优惠
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ReviseOrdersNew(string strParam);
        /// <summary>
        /// 售价
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ModifyConfirmPriceOrdersNew(string strParam);
        /// <summary>
        /// 自留
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ModifyOnlineOrderNew(string strParam);
        /// <summary>
        /// 回库
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ReturnCenter(string strParam);
        /// <summary>
        /// 收款  1人民币 2美金
        /// </summary>
        /// <param name="payOrdersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ReceiptOrdersNew(string payOrdersParam);
        /// <summary>
        /// 付款 1人民币 2美金
        /// </summary>
        /// <param name="receiptOrdersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string PayOrdersNew(string receiptOrdersParam);
        /// <summary>
        /// 退回供应商
        /// </summary>
        /// <param name="returnOrdersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ReturnOrdersNew(string returnOrdersParam);

        /// <summary>
        /// 订单状态数统计
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        string GetOrderNewNumber(string strParam);
        /// <summary>
        /// 订单收款状态数统计
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        string GetOrderNewReceiptStatusNumber(string strParam);

        /// <summary>
        /// 导出销售订单（团队）
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string DownloadSalesOrderNew(string strParam);
        /// <summary>
        /// 导出销售和采购订单（团队）
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        string DownloadSalesPurchaseOrderNew(string strParam);
        /// <summary>
        /// 导出所有订单
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ExportAllOrderNew(string strParam);
        /// <summary>
        /// 查询购物车商品数量
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetCartNums(string strParam);
        /// <summary>
        /// 打印出货单 20180903
        /// </summary>
        /// <param name="deliveryOrdersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetPrintShipOrdersById(string strParam);
        /// <summary>
        ///  出货单列表
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetAllShipOrder(string strParam);
        /// <summary>
        /// 出货单明细
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetAllShipOrderByShipNo(string strParam);
        /// <summary>
        /// 删除出货单里面的订单
        /// </summary>
        /// <param name="CancelGemOrdersParam"></param>
        /// <returns></returns>
        [OperationContract]
        string UpdateOrderInShipNoByOrderIdsOrShipNo(string strParam);

        /// <summary>
        /// 移除购物车
        /// </summary>
        /// <param name="ringCartId"></param>
        /// <returns></returns>
        [OperationContract]
        string RemoveParcelsCart(string removeFromCartParam);
        /// <summary>
        /// 移除购物车
        /// </summary>
        /// <param name="ringCartId"></param>
        /// <returns></returns>
        [OperationContract]
        string RemoveRingsCart(string removeFromCartParam);
        /// <summary>
        /// 移除购物车
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        [OperationContract]
        string RemoveCart(string strParam);
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="strParam"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        [OperationContract]
        string PutPrimeGoldsPrice(string strParam);

        /// <summary>
        /// 获取
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetPrimeGoldsPrice(string strParam);
        /// <summary>
        /// 查询所有商品库存 TAG
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetAllProducts(string strParam);
        #endregion
        #region 添加购物车

        [OperationContract]
        string AddRingsCart(string strParam);

        [OperationContract]
        string AddParcelsCart(string strParam);

        [OperationContract]
        string AddGemsCart(string strParam);

        [OperationContract]
        string AddEmeraldsCart(string strParam);

        [OperationContract]
        string AddPrimeGoldsCart(string strParam);
        [OperationContract]
        string AddInlaySettingsCart(string strParam);
        #endregion
        #region 现货批量修改
        /// <summary>
        /// 批量修改商品
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ModifyProducts(string strParam);
        /// <summary>
        /// 批量修改商品
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string DelteProducts(string strParam);
        /// <summary>
        /// 更新付款状态
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        [OperationContract]
        string UpdateProductPayStatus(string strParam);
        /// <summary>
        /// 批量改价
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string UpdateProductPrice(string strParam);
        #endregion

        #region
        /// <summary>
        ///  只显示设置好的供应商
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ReturnSupplier(string strParam);
        #endregion

        #region
        /// <summary>
        ///  获取用户查询次数
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetSearchCount(string strParam);
        /// <summary>
        /// 获取用户查询明细
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetSearchCountDetail(string strParam);
        /// <summary>
        /// 添加客户备注
        /// </summary>
        /// <param name="strParam"></param>
        [OperationContract]
        string AddCustomerRemarks(string strParam);
        /// <summary>
        /// 插入客户日志
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetCustomerRemarksList(string strParam);
        #endregion

        //发送验证码 注册 
        [OperationContract]
        string ValidateCode(string param);
        /// <summary>
        /// 验证用户手机是否已存在（除自己外）
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ValidateCustomerMobileIsExist(string strParam);
        /// <summary>
        /// 手机验证码登录
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string MobileLogin(string strParam);
        /// <summary>
        /// 删除首页图片
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string RemoveHomeImg(string strParam);
        /// <summary>
        /// 查询非裸钻日志
        /// </summary>
        /// <param name="strParam"></param>
        [OperationContract]
        void ProductSearch(string strParam);

        [OperationContract]
        string ShowBlackList();
        [OperationContract]
        string AddBlackList(string strParam);
        [OperationContract]
        string DelBlackList(string strParam);
        /// <summary>
        /// app 专用
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string GetAppIndexInfo(string strParam);

        /// <summary>
        /// 批量上传图片视频
        /// </summary>
        /// <param name="imageParam"></param>
        /// <returns></returns>
        [OperationContract]
        UpFileResult UploadImagesAndVideos(ImageUploadMessage imageParam);

        /// <summary>
        /// 导出
        /// </summary>
        /// <param name="exportParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ExportProductData(string strParam);

        #region 设置客户登录方式和代下单的倍率 设置推荐
        [OperationContract]
        string AddLoginMode(string strParam);

        [OperationContract]
        string GetLoginMode(string strParam);

        [OperationContract]
        string ModifyLoginMode(string strParam);

        [OperationContract]
        string AddOrderRate(string strParam);

        [OperationContract]
        string GetOrderRate(string strParam);
        [OperationContract]
        string ModifyOrderRate(string strParam);

        [OperationContract]
        string AddRecommend(string strParam);
        [OperationContract]
        string DelRecommend(string strParam);
        [OperationContract]
        string GetRecommend(string strParam);
        [OperationContract]
        string ModifyRecommend(string strParam);
        [OperationContract]
        string SaveGoodsSort(string strParam);
        [OperationContract]
        string DelGoodsSort(string strParam);
        [OperationContract]
        string GetGoodsSort(string strParam);
        #endregion


        #region 小程序相关
        /// <summary>
        /// 绑定客户信息
        /// </summary>
        /// <param name="user"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        [OperationContract]
        string BindByParam(string customerAndOpenId, string key);
        /// <summary>
        /// 检查绑定信息
        /// </summary>
        /// <param name="user"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        [OperationContract]
        string CheckBindByParam(string user, string key);


        [OperationContract]
        string AddCart(string strParam);
        [OperationContract]
        string DeleteCart(string strParam);
        [OperationContract]
        string UpdateProductsOrder(string strParam);
        [OperationContract]
        string GetAllOrdersList(string strParam);
        [OperationContract]
        string GetRingOrderInfo(string orderInfoParam);
        [OperationContract]
        string GetAllCartsList(string strParam);

        #endregion
        #region 订单重写
        /// <summary>
        /// 提交订单(new) 
        /// </summary>
        /// <param name="submmitOrderParam"></param>
        /// <returns></returns>
        [OperationContract]
        string SubmitOrders(string submmitOrderParam);

        #endregion
        #region 市场倍率
        /// <summary>
        /// 获取市场倍率
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        string GetMarketRate(string param);
        /// <summary>
        /// 修改市场倍率
        /// </summary>
        /// <param name="strParam"></param>
        /// <returns></returns>
        [OperationContract]
        string ModifyMarketRate(string strParam);
        #endregion
        [OperationContract]
        string InitSupplier(string param);
        [OperationContract]
        void GetAllSupplier(string param);
    }
}
